<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Мой валидатор формы.</title>

        <script type="text/javascript" src="/scripts1/jquery/jquery.js"></script>
        <script type="text/javascript" src="/scripts1/jquery.myvalidate.js"></script>

        <link href="/scripts1/css/myvalidate.css" rel="stylesheet" type="text/css" />

        <script type="text/javascript">
            $(document).ready(function() {
                   //Init global options
                   var globalOptions = {bindedElement : $("#forma"),
                                        triggeredEvents: "submit",
                                        processors : [{method:'notEmpty'}],
                                        errorFunction   : "list"};

                   //Validators that will be used by plugin
                   var validatorStack = ['notEmpty', 'minLength', 'maxLength', 
                                         'regExp', 'required', 'equal',
                                         'rangeLength', 'rangeValue', 'email',
                                         'remoteUrl'];

                   //Functions that show errors of validation
                   var errorMessageShowFunctionStack = ['list', 'popup'];
                   
                   //Init plugin
                   //$.myValidateInit Inits globalOptions, validators, error
                   //message functions and locale
                   $.myValidateInit(globalOptions, validatorStack,
                                    errorMessageShowFunctionStack, "ru");


                   //Individual settings for each field
                   //It's possible to connect several validators to one field
                   //It's possible to connect several events and several binded elements!
                   var options1 = {bindedElement   : $("#two"),
                                   triggeredEvents : 'keyup',
                                   processors : [{method         : 'minLength',
                                                  validationValue: 3,
                                                  messages       : {'en':'Error with %value%. 3 characters are required!',
                                                                    'ru':'Ошибка в %value%. Необходимо минимум 3 символа!'}},
                                                 {method         : 'notEmpty'},
                                                 {method         : 'maxLength',
                                                  validationValue: 6},
                                                 {method         : 'regExp',
                                                  validationValue: /^[0-9]+$/}
                                                ]
                                   };
                   //Uses bindedElement and triggeredEvents from globalOptions
                   var options2 = {processors : [{method         : 'minLength',
                                                  validationValue: 3}
                                                ]
                                  };

                   //errorFunction - popup (will be displayed popup window)
                   var options3 = {processors : [{method : 'maxLength',
                                                  validationValue: 1}],
                                   errorFunction : "popup"
                                  };

                   var options4 = {errorFunction : "popup"};

                   //And now these options will be applied to form elements
                   $("#one").myvalidate(options4);
                   $("#two").myvalidate(options1);
                   $("#two").myvalidate(options2);
                   $("#three").myvalidate(options3);
                   $("#test").myvalidate();

                   $("#radiob").myvalidate( {processors : [{method : 'required'}]} );
                   
                   $("#selector").myvalidate( {bindedElement   : $("#selector"),
                                               triggeredEvents : 'change',
                                               processors : [{method : 'equal',
                                                              validationValue : 'yes'}]} );

                   $("#range").myvalidate( {processors : [{method : 'rangeLength',
                                                           validationValue : {'min':2,
                                                                              'max':4},
                                                           messages : {'en':'The number of the characters must be beetwen 2..4',
                                                                       'ru':'Кол-во символов должно быть в пределах 2..4'}
                                                          }]
                                            } );

                   $("#rangeValue").myvalidate({bindedElement   : $("#rangeValue"),
                                               triggeredEvents : 'blur',
                                               processors : [{method : 'rangeValue',
                                                              validationValue : {'min':1990,
                                                                                 'max':2000},
                                                              messages : {'en':'Enter value in the range 1990..2000',
                                                                          'ru':'Введите число в диапазоне 1990..2000'}
                                                             }]
                                                 });


                   $("#email").myvalidate({processors : [{method : 'email',
                                                          messages : {'en':'This email is not valid',
                                                                      'ru':'Введенный email не валиден'}
                                                         }]
                                          });

            });

        </script>

    </head>
    <body>
        <p><b>Валидатор форм. Плагин jquery.</b></p>

        <form id="forma" name="forma" method="post">
        Валидатор "notEmpty". Событие - submit формы.<br />
        <input id="one" type="text" name="field" value="" /><br /><br />

        Валидаторы "minLength, notEmpty, maxLength, regExp". Событие - onkeyup.
        А также валидатор maxLength для события - submit формы.<br />
        <input id="two" type="text" name="field2" value="" /><br /><br />

        Валидатор "maxLength". Событие - submit формы. Сообщение об ошибке в виде pop-up<br />
        <input id="three" type="text" name="field3" value="" /><br /><br />

        Валидатор "notEmpty". Событие - submit формы. Используются глобальные настройки плагина<br />
        <textarea id="test" cols="10" rows="5"></textarea><br /><br />

        Валидатор "rangeLength". Событие - submit формы.<br />
        <input id="range" type="text" name="range" /><br /><br />

        Валидатор "required". Событие - submit формы.<br />
        Поставьте галочку<br />
        <input type="checkbox" id="radiob" name="radiob" /><br /><br />

        Валидатор "equal". Событие - onchange селекта.
        Вы часто опаздывает на работу?<br />
        <select id="selector" name="selector">
            <option value="yes" />Да
            <option value="no" />Нет
            <option value="dontno" selected />Не знаю
        </select><br /><br />

        Валидатор "rangeValue". Событие - onBlur<br />
        <input id="rangeValue" type="text" name="rangeValue" /><br /><br />

        Валидатор "email". Событие - submit<br />
        <input id="email" type="text" name="email" /><br /><br />


        <input type="submit" />
        </form>

<a href="" onclick="window.history.back();return false;">Назад</a>
    </body>
</html>
